package com.zs.propertymanage.service.impl;

import com.zs.propertymanage.dataObj.R;
import com.zs.propertymanage.dataObj.entity.Manager;

public interface ManagerService {

    /**
     * 获取所有未经处理的管理员信息
     *
     * @return 所有未经处理的管理员信息
     */
    R getAllManagerWithPlain();

    /**
     * 根据条件获取所有管理员
     *
     * @param search      搜索内容
     * @param currentPage 当前页码
     * @param pageSize    每页数量
     * @return 所有符合条件的管理员
     */
    R getAllManagerWithCondition(String search, Integer currentPage, Integer pageSize);

    /**
     * 添加管理员
     *
     * @param manager 管理员对象
     * @return 添加的管理员
     */
    R addManager(Manager manager);

    /**
     * 更新管理员
     *
     * @param manager 管理员对象
     * @return 更新的管理员
     */
    R updateManager(Manager manager);

    /**
     * 根据ID删除管理员
     *
     * @param id 管理员ID
     * @return 删除的管理员
     */
    R deleteManagerById(String id);

    /**
     * 获取所有角色
     *
     * @return 所有角色
     */
    R getAllManagerRole();

    /**
     * 添加角色
     *
     * @param roleName 角色名称
     * @return 添加的角色
     */
    R addManagerRole(String roleName);

    /**
     * 根据ID删除角色
     *
     * @param id 角色ID
     * @return 删除的角色
     */
    R deleteManagerRoleById(Integer id);

    // 根据id获取管理员
    R getManagerById(String id);

}
